﻿using GanttChart;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GanttChartDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            var json = "[{\"Title\":\"四色印刷机台\",\"Items\":[{\"Ranges\":null,\"Title\":\"四色印刷_标签;标签;标签_标签\",\"Tooltip\":\"计划编号:P0010\\r\\n优先度:1\\r\\n工单审核时间:2019-07-22 17:27:54\\r\\n最早开始:2019-07-23 00:00:00\\r\\n交货日期:2019-07-23 00:00:00\\r\\n剩余排程数量:211\\r\\n前计划编号:\\r\\n后计划编号:P0011\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:0\\r\\n上机宽:0\\r\\n产品规格:100*200\\r\\n拼版数:300\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:料号805;KHLHBQ01;725料号标签1\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M066\\r\\n机台名称:四色印刷机台\\r\\n计划开始时间:2019-11-17 00:02:00\\r\\n计划结束时间:2019-11-19 12:02:00\",\"StartTime\":\"2019-11-17T00:02:00+08:00\",\"EndTime\":\"2019-11-19T12:02:00+08:00\"},{\"Ranges\":null,\"Title\":\"四色印刷_彩盒;彩盒;彩盒;彩盒_食品包装合版\",\"Tooltip\":\"计划编号:P0015\\r\\n计划名称:四色印刷_彩盒;彩盒;彩盒;彩盒_食品包装合版\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070017\\r\\n产品名称:彩盒;彩盒;彩盒;彩盒\\r\\n工序编号:GX116\\r\\n工序名称:四色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-24 17:20:03\\r\\n最早开始:2019-07-25 00:00:00\\r\\n交货日期:2019-07-18 10:23:17\\r\\n剩余排程数量:100\\r\\n前计划编号:\\r\\n后计划编号:P0016\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:500\\r\\n上机宽:500\\r\\n产品规格:100*100\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:KHLH;;彩盒;\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M066\\r\\n机台名称:四色印刷机台\\r\\n计划开始时间:2019-11-19 12:03:00\\r\\n计划结束时间:2019-11-22 00:03:00\",\"StartTime\":\"2019-11-19T12:03:00+08:00\",\"EndTime\":\"2019-11-22T00:03:00+08:00\"},{\"Ranges\":null,\"Title\":\"四色印刷_彩盒;彩盒;彩盒;彩盒_彩盒\",\"Tooltip\":\"计划编号:P0018\\r\\n计划名称:四色印刷_彩盒;彩盒;彩盒;彩盒_彩盒\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070007\\r\\n产品名称:彩盒;彩盒;彩盒;彩盒\\r\\n工序编号:GX116\\r\\n工序名称:四色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-19 19:27:32\\r\\n最早开始:2019-07-20 00:00:00\\r\\n交货日期:2019-07-18 10:23:17\\r\\n剩余排程数量:5000\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:0\\r\\n克重:0\\r\\n上机长:500\\r\\n上机宽:500\\r\\n产品规格:100*100\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:KHLH;;彩盒;\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M066\\r\\n机台名称:四色印刷机台\\r\\n计划开始时间:2019-11-14 12:01:00\\r\\n计划结束时间:2019-11-17 00:01:00\",\"StartTime\":\"2019-11-14T12:01:00+08:00\",\"EndTime\":\"2019-11-17T00:01:00+08:00\"},{\"Ranges\":null,\"Title\":\"四色印刷_彩盒;彩盒;彩盒_彩盒\",\"Tooltip\":\"计划编号:P0059\\r\\n计划名称:四色印刷_彩盒;彩盒;彩盒_彩盒\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070004\\r\\n产品名称:彩盒;彩盒;彩盒\\r\\n工序编号:GX116\\r\\n工序名称:四色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-18 15:05:13\\r\\n最早开始:2019-07-19 00:00:00\\r\\n交货日期:2019-07-18 15:02:26\\r\\n剩余排程数量:6060\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:300\\r\\n上机宽:500\\r\\n产品规格:200*200\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:KHLH730II;725KHLH彩盒;三彩盒\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M066\\r\\n机台名称:四色印刷机台\\r\\n计划开始时间:2019-11-12 00:00:00\\r\\n计划结束时间:2019-11-14 12:00:00\",\"StartTime\":\"2019-11-12T00:00:00+08:00\",\"EndTime\":\"2019-11-14T12:00:00+08:00\"}]},{\"Title\":\"八色印刷机\",\"Items\":[{\"Ranges\":null,\"Title\":\"八色印刷_标签;标签;标签_标签\",\"Tooltip\":\"计划编号:P0013\\r\\n计划名称:八色印刷_标签;标签;标签_标签\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:LZ19080004\\r\\n产品名称:标签;标签;标签\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-08-05 10:41:53\\r\\n最早开始:2019-08-06 00:00:00\\r\\n交货日期:2019-07-23 00:00:00\\r\\n剩余排程数量:1600\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:0\\r\\n上机宽:0\\r\\n产品规格:100*200\\r\\n拼版数:100\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:料号805;KHLHBQ01;725料号标签1\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-12 02:13:00\\r\\n计划结束时间:2019-11-12 02:32:00\",\"StartTime\":\"2019-11-12T02:13:00+08:00\",\"EndTime\":\"2019-11-12T02:32:00+08:00\"},{\"Ranges\":null,\"Title\":\"八色印刷_小彩盒;小彩盒_小彩盒\",\"Tooltip\":\"计划编号:P0014\\r\\n计划名称:八色印刷_小彩盒;小彩盒_小彩盒\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19080002\\r\\n产品名称:小彩盒;小彩盒\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-08-01 11:41:41\\r\\n最早开始:2019-08-02 00:00:00\\r\\n交货日期:2019-08-01 00:00:00\\r\\n剩余排程数量:83\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:500\\r\\n上机宽:500\\r\\n产品规格:\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:811043KHLH;KHLH100\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-12 02:11:00\\r\\n计划结束时间:2019-11-12 02:12:00\",\"StartTime\":\"2019-11-12T02:11:00+08:00\",\"EndTime\":\"2019-11-12T02:12:00+08:00\"},{\"Ranges\":null,\"Title\":\"八色印刷_标签;标签;标签_标签\",\"Tooltip\":\"计划编号:P0011\\r\\n计划名称:八色印刷_标签;标签;标签_标签\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:LZ19070001\\r\\n产品名称:标签;标签;标签\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-22 17:27:54\\r\\n最早开始:2019-07-23 00:00:00\\r\\n交货日期:2019-07-23 00:00:00\\r\\n剩余排程数量:89\\r\\n前计划编号:P0010\\r\\n后计划编号:\\r\\n印色色数:4\\r\\n克重:0\\r\\n上机长:0\\r\\n上机宽:0\\r\\n产品规格:100*200\\r\\n拼版数:300\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:料号805;KHLHBQ01;725料号标签1\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-19 12:03:00\\r\\n计划结束时间:2019-11-19 12:04:00\",\"StartTime\":\"2019-11-19T12:03:00+08:00\",\"EndTime\":\"2019-11-19T12:04:00+08:00\"},{\"Ranges\":null,\"Title\":\"八色印刷_彩盒2;彩盒2_彩盒2\",\"Tooltip\":\"计划编号:P0017\\r\\n计划名称:八色印刷_彩盒2;彩盒2_彩盒2\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070026\\r\\n产品名称:彩盒2;彩盒2\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-26 11:47:23\\r\\n最早开始:2019-07-27 00:00:00\\r\\n交货日期:2019-07-24 00:00:00\\r\\n剩余排程数量:179\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:8\\r\\n克重:0\\r\\n上机长:200\\r\\n上机宽:200\\r\\n产品规格:\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:726KHLH2;7231003SKHLH\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-12 02:08:00\\r\\n计划结束时间:2019-11-12 02:10:00\",\"StartTime\":\"2019-11-12T02:08:00+08:00\",\"EndTime\":\"2019-11-12T02:10:00+08:00\"},{\"Ranges\":null,\"Title\":\"八色印刷_彩盒2;彩盒2;彩盒2_食品包装合版1\",\"Tooltip\":\"计划编号:P0028\\r\\n计划名称:八色印刷_彩盒2;彩盒2;彩盒2_食品包装合版1\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070021\\r\\n产品名称:彩盒2;彩盒2;彩盒2\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-25 15:52:14\\r\\n最早开始:2019-07-26 00:00:00\\r\\n交货日期:2019-07-24 00:00:00\\r\\n剩余排程数量:2500\\r\\n前计划编号:\\r\\n后计划编号:P0029\\r\\n印色色数:8\\r\\n克重:0\\r\\n上机长:1000\\r\\n上机宽:1000\\r\\n产品规格:\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:725质检SKHLH;KHD0001;7251659料号\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-12 00:35:00\\r\\n计划结束时间:2019-11-12 01:05:00\",\"StartTime\":\"2019-11-12T00:35:00+08:00\",\"EndTime\":\"2019-11-12T01:05:00+08:00\"},{\"Ranges\":null,\"Title\":\"八色印刷_彩盒2;彩盒2;彩盒2_彩盒2\",\"Tooltip\":\"计划编号:P0044\\r\\n计划名称:八色印刷_彩盒2;彩盒2;彩盒2_彩盒2\\r\\n分拆信息:\\r\\n合并信息:\\r\\n工单编号:WO19070020\\r\\n产品名称:彩盒2;彩盒2;彩盒2\\r\\n工序编号:GX119\\r\\n工序名称:八色印刷\\r\\n优先度:1\\r\\n工单审核时间:2019-07-25 13:46:16\\r\\n最早开始:2019-07-26 00:00:00\\r\\n交货日期:2019-07-23 10:00:58\\r\\n剩余排程数量:100\\r\\n前计划编号:\\r\\n后计划编号:\\r\\n印色色数:8\\r\\n克重:0\\r\\n上机长:1000\\r\\n上机宽:1000\\r\\n产品规格:200*200\\r\\n拼版数:1\\r\\n色序:\\r\\n开料开数:1\\r\\n工作中心名称:印刷中心\\r\\n客户料号:725KHLH2;KHLH72301;725质检SKHLH\\r\\n自定义数值1:0\\r\\n自定义数值2:0\\r\\n自定义数值3:0\\r\\n其他说明:\\r\\n机台编号:M069\\r\\n机台名称:八色印刷机\\r\\n计划开始时间:2019-11-12 00:33:00\\r\\n计划结束时间:2019-11-12 00:34:00\",\"StartTime\":\"2019-11-12T00:33:00+08:00\",\"EndTime\":\"2019-11-12T00:34:00+08:00\"},{\"Ranges\":null,\"IsWarnning\":true,\"Title\":\"八色印刷_彩盒2;彩盒2;彩盒2_食品包装合版1\",\"Tooltip\":\"计划编号:P0045\\r\\n计划名称:八色印刷_彩盒2;彩盒2;彩盒2_食品包装合版1\",\"StartTime\":\"2019-11-12T01:06:00+08:00\",\"EndTime\":\"2019-11-12T01:36:00+08:00\"}]},{\"Title\":\"印刷机台2\",\"Items\":[]},{\"Title\":\"印刷负数用例\",\"Items\":[]}]";
            var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GanttChartViewRow>>(json);
            this.ganttChartView1.Rows = new GanttChartCollection<GanttChartViewRow>(list);

            if (this.ganttChartView1.ContextMenu == null)
            {
                this.ganttChartView1.ContextMenu = new ContextMenu();
            }
            var menuItem = new MenuItem { Text = "换行模式" };
            menuItem.MenuItems.Add("紧凑", ScheduleGanttChart_ContextMenuClick);
            menuItem.MenuItems.Add("文字超出换行", ScheduleGanttChart_ContextMenuClick);
            menuItem.MenuItems.Add("强制换行", ScheduleGanttChart_ContextMenuClick);
            menuItem.MenuItems.Add("回归", ScheduleGanttChart_ContextMenuClick);
            this.ganttChartView1.ContextMenu.MenuItems.Add(menuItem);
        }
        private void ScheduleGanttChart_ContextMenuClick(object sender, EventArgs e)
        {
            var control = (MenuItem)sender;
            switch (control.Text)
            {
                case "紧凑":
                    this.ganttChartView1.BlockType = GanttChartViewItemBlockType.Compact;
                    break;
                case "文字超出换行":
                    this.ganttChartView1.BlockType = GanttChartViewItemBlockType.TextOverBlock;
                    break;
                case "强制换行":
                    this.ganttChartView1.BlockType = GanttChartViewItemBlockType.Block;
                    break;
                case "回归":
                    this.ganttChartView1.BlockType = GanttChartViewItemBlockType.Return;
                    break;
            }
        }
    }
}
